package com.dong.ui.util;

import com.dong.common.util.Global;
import com.dong.common.view.CommonView;
import com.dong.ui.component.CommonFrame;

import java.awt.*;
import java.util.Map;

/**
 * @description: 路由处理
 * @author: 陈瑞东
 * @create: 2021-08-26 09:49
 */
public class RouterUtils {

    /**
     * 路由处理，页面跳转
     * @param name 跳转的窗体类名
     */
    public static void router(String name){
        router(name, null);
    }

    /**
     * 路由处理，页面跳转
     * @param name 跳转的窗体类名
     * @param params 参数
     */
    public static void router(String name, Map<String, Object> params){
        Object bean = null;
        if (Global.context.containsBean(name)) {
            bean = Global.context.getBean(name);
        }
        // 不存在页面时，可以直接创建，存在则让其显示
        if (bean == null) {
            Class<?> clazz = null;
            Object o = null;
            try {
                clazz = Class.forName(name);
                o = clazz.newInstance();
            } catch (Exception e) {
                e.printStackTrace();
            }
            if (o instanceof CommonView) {
                ((CommonView) o).init(params);
            }
        } else {
            if (bean instanceof CommonFrame) {
                // 判断是否已经初始化，如果已经初始化，则直接显示，如果没有初始化，则初始化
                if (((CommonFrame) bean).isInit()) {
                    ((CommonFrame) bean).afterInit();
                    if (bean instanceof CommonView) {
                        ((CommonView) bean).init(params);
                    }
                } else {
                    ((CommonFrame) bean).setVisible(true);
                }
            }
        }
    }
}
